const char* predefines = 
"#ifndef EXTENSION_H\n"
"#define EXTENSION_H\n"
// new type

"typedef unsigned char uchar;	\n"
"typedef unsigned int uint;	\n"
"typedef unsigned long ulong;	\n"
"typedef unsigned short ushort;	\n"
"typedef long ptrdiff_t;	\n"
"typedef void* intptr_t;	\n"
"typedef void* uintptr_t;	\n"

//vector type
 
"#define VECTOR(TYPE,DIM) typedef TYPE TYPE##DIM __attribute__((ext_vector_type((DIM))))\n"
"#define VECTORS(TYPE)	VECTOR(TYPE,2);\\
			VECTOR(TYPE,3);\\
		       	VECTOR(TYPE,4);\\
		       	//VECTOR(TYPE, 8); VECTOR(TYPE, 16); may not support\n"


"VECTORS(char)		\n"
"VECTORS(uchar)		\n"
"VECTORS(short)		\n"
"VECTORS(ushort)	\n"
"VECTORS(int)		\n"
"VECTORS(uint)		\n"
"VECTORS(long)		\n"
"VECTORS(ulong)		\n"
"VECTORS(float)		\n"

//restriction keywords

"#define kernel __kernel		\n"
"#define global __global		\n"
"#define constant __constant		\n"
"#define local __local			\n"
"#define __kernel			\n"
"#define __global			\n"
"#define __constant			\n"
"#define __local			\n"
"#endif					\n";
